package com.kedacom.freedomLabel.label;

import android.support.annotation.NonNull;

import com.kedacom.freedomLabel.label.annotation.FontScale;
import com.kedacom.freedomLabel.label.builder.LabelParams;
import com.kedacom.freedomLabel.label.column.BarCodeLabelColumn;
import com.kedacom.freedomLabel.label.column.BitmapLabelColumn;
import com.kedacom.freedomLabel.label.column.QRCodeLabelColumn;
import com.kedacom.freedomLabel.label.column.TextLabelColumn;

/**
 * @author licheng
 * @since 2019/11/28 16:51
 */
public abstract class Label<T> {

    public void bind(@NonNull LabelParams<T> params) {
        before();
    }

    public abstract void before();

    public abstract void addText(@NonNull TextLabelColumn column, @FontScale int xScale, @FontScale int yScale);

    public abstract void addQRCode(@NonNull QRCodeLabelColumn column);

    public abstract void addBarCode(@NonNull BarCodeLabelColumn column);

    public abstract void addBitmap(@NonNull BitmapLabelColumn column);

    public abstract void after();

    public abstract byte[] encodeCommand();
}